// 方式一： 获取token-不可行
// const jwt = require('jsonwebtoken')
// const secretKey = '1zN5mxp4snVgxlyFPqi68UCGojeiBZ'
// async function generateToken(username) {
//     try {
//         const payload = { username, 
//             // exp: Math.floor(Date.now() / 1000) + 86400 
//         } // 过期时间为一天
//         const token = jwt.sign(payload, secretKey, { expiresIn: '1d' })
//         return token
//     } catch (error) {
//         console.log('error', error)
//     }
// }
// const userId = 'uid-1'
// generateToken(userId)
// .then(token => {
//     console.log('token:', token)
// }).catch(err => {
//     console.log('error', error)
// })

// 方式二： 获取token
// const axios = require('axios');
// axios({
//     method: 'get',
//     url: `/jwt`, 
//     data:  {},
//     headers: {}
// })
// .then(function (res1) {
//     console.log('token:', res1.data.jwt)
// })
const path = require('path');
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3001;

const cors = require('cors')

// 跨域
app.use(cors())

app.use(bodyParser.json());

// 提供静态文件服务
// 静态资源托管
app.use(express.static(__dirname+'/public'))
// app.use(express.static(path.join(__dirname, 'public')));

// 用于存储文档信息的临时对象
let documentStorage = {};

// 生成唯一的文档密钥
function generateKey() {
    return Math.random().toString(36).substr(2, 9);
}

// 获取文档信息的接口
app.get('/get-document', (req, res) => {
    const docKey = generateKey();
    const docUrl = 'http://172.21.129.73/new.docx'; // 替换为你的文档URL
    const callbackUrl = 'http://172.21.129.73:3001/callback'; // 替换为你的回调URL

    documentStorage[docKey] = {
        url: docUrl,
        key: docKey,
        callbackUrl: callbackUrl
    };

    console.log('get-document', docUrl, docKey, callbackUrl)

    res.json({
        document: {
            url: docUrl,
            key: docKey,
            callbackUrl: callbackUrl
        }
    });
});

// OnlyOffice回调接口
app.post('/callback', (req, res) => {
    const body = req.body;
    const docKey = body.key;

    if (documentStorage[docKey]) {
        console.log('Document status:', body.status);
        // 处理文档状态更新
    }

    res.sendStatus(200);
});

app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});